home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / UTIL / DESKTOP / APPDOCK2 / !AppDock2 / !RunImage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1996-09-28  |  43KB  |  1,826 lines

  1.  > !AppDock.!RunImage
  2.   This application is FREEWARE, i.e. you may copy and distribute
  3.   it as long as all files are supplied and nothing is modified.
  4.  1992-96 Martin W
  5. rthner
  6.             Jahnstrasse 18
  7.             71116 Gaertringen
  8.             Germany
  9. Gidtlen%=1000:idblen%=256:windowlen%=2000:dtlen%=24*30:sctlen%=16*30
  10.  IDT% idtlen%:
  11.  IDB% idblen%
  12.  BUFFER% 300,dockt% dtlen%,sct% sctlen%:
  13.  scv% 20
  14. ;menulen%=1000:
  15.  MENU% menulen%,Q% 48,WINDOW% windowlen%
  16. TASK=&4B534154
  17.  mbl% 64
  18. H!mbl%=&502:mbl%!4=&400c1:mbl%!8=1:mbl%!12=3:mbl%!16=&400c7:mbl%!20=0
  19. (-256)<&A4 
  20.  version%=2
  21.  version%=3.1
  22.  "Wimp_Initialise",version%*100,TASK,"Application Dock",mbl% 
  23.  OS_V,task_h%
  24. errorbox:
  25. finish:
  26.  "OS_ReadMonotonicTime" 
  27.  oldtime%
  28.  "OS_GetEnv" 
  29. DOCKFILE$=""
  30. EV$,"-quit") 
  31. EV$,"""")
  32. EV$,"""",PP+1)
  33.   PP+=1
  34. EV$,PP,1)<>" "
  35.  DOCKFILE$=
  36. EV$,PP)
  37.  DOCKFILE$="" 
  38.  DOCKFILE$="<Dock$Dir>.!Dock"
  39. ("<Dock$Dir>.Sprites")
  40.  S=0 
  41.  1,"Can't read sprite file"
  42. EXS%=
  43.  Sprites% EXS%+40:
  44. 0?!Sprites%=EXS%+40:Sprites%!4=0:Sprites%!8=16:Sprites%!12=16
  45.  "OS_SpriteOp",522,Sprites%,"<Dock$Dir>.Sprites"
  46. MAX=100:SS%=136:SB%=132
  47.  P$(MAX),KN(MAX),CT(MAX),KEYC%(MAX),KFLAG(MAX),CODES%(20)
  48. 4 MAXAPPS=20:DSCMAX=32:SCL%=15
  49. ANZPS%=255 
  50.  SCL%
  51. SAN%=-
  52. (-DSCMAX/ANZPS%)
  53.  SD$(MAXAPPS,SAN%)
  54.  APP$(MAXAPPS),SCKEYC%(MAXAPPS,DSCMAX),SCON(MAXAPPS)
  55.  N=0 
  56.  MAXAPPS-1
  57.  M=0 
  58.  SAN%-1
  59. ;,  SD$(N,M)=
  60.  SCL%,
  61. SCL%-1," "))
  62. >"APPNUM=0:SCKEYC%()=-1:SCON()=0
  63. ?5DON=0:DOF=0:SCOF=0:NOSC=7:dock_h%=-1:defcut_h%=-1
  64. @)REOPEN=
  65. :DPOS=1:SCPOS=0:SC=
  66. :EDFLAG=
  67. SHORTTOP=
  68. :DOCK_POS=-2
  69.  "AppDockSpt_GetPollWord" 
  70.  ,,poll_word%
  71.  "AppDockSpt_ClearKeyStatus"
  72. NM$="(none)":AF=
  73. codes
  74. read_dock:
  75. boot_dock
  76. read_sc
  77. errorbox:
  78. finish:
  79. buffers:
  80. indirected_text:
  81. infowindow
  82. upwindow(DOCK_POS):
  83. downwindow(DOCK_POS)
  84. scleftwindow(DOCK_POS):
  85. scrightwindow(DOCK_POS)
  86. shortwindow:
  87. defappwindow(DOCK_POS)
  88. editwindow:
  89. edscwindow
  90. readvduinfo
  91. initialise_menu_tree:MENU2%=MAINPOINTER%(2)
  92. d_tick:
  93. sc_tick:
  94. st_tick
  95.  Version$="2.43":Date$="28-Sep-96" see below
  96. Fileversion$="0"
  97. U*MASK0%=1+(1<<4)+(1<<5)+(1<<11)+(1<<12)
  98. MASK1%=MASK0% 
  99. MASK%=MASK0%
  100.  MASK%=MASK1%
  101. OLH%=-3
  102. open_all(DOCK_POS):
  103. clear_sc
  104.  (SHORTTOP 
  105.  version%<3) 
  106.   MASK%=MASK1%
  107.  REOPEN 
  108.  MASK%=MASK0%
  109.  (SHORTTOP 
  110.  version%>=3) 
  111.   MASK%=MASK%+(1<<22)
  112.  "OS_ReadMonotonicTime" 
  113.  newtime%
  114.  (newtime%-oldtime%)>0
  115.   oldtime%=oldtime%+50
  116.  "Wimp_PollIdle",MASK%,BUFFER%,oldtime%,poll_word% 
  117.  REASON%
  118.  REASON% 
  119.  REOPEN 
  120.      
  121. open_all(DOCK_POS)
  122.      REOPEN=
  123.      
  124.  MASK%=MASK0%
  125. r        
  126.  EDFLAG 
  127. u+    
  128.  "Wimp_GetCaretPosition",,BUFFER%
  129. v-    CA%=!BUFFER%:BUFFER%!12=0:!BUFFER%=20
  130.  CA%=-1 
  131.      
  132.  OLH%<>-1 
  133. y-      NM$="(no input focus)":OLH%=-1:AF=
  134. z;      $defappi0=NM$:
  135. redraw_icon(defapp_h%,0):
  136. clear_sc
  137.      
  138. |        
  139. }5     
  140.  "Wimp_SendMessage",19,BUFFER%,CA% 
  141.  ,,R2%
  142.      
  143.  R2%<>OLH% 
  144. C      BUFFER%!20=R2%:BUFFER%!12=0:BUFFER%!16=&400C6:!BUFFER%=24
  145. 5      
  146.  "Wimp_SendMessage",17,BUFFER%,0:OLH%=R2%
  147.      
  148.         
  149.  SHORTTOP 
  150.  version%<3 
  151. )    
  152.  "AppDockSpt_GetKeyStatus" 
  153.  R%<>0 
  154.      
  155. process_key_status
  156.         
  157. sysopen
  158.  "Wimp_CloseWindow",,BUFFER%
  159. check_mouse
  160. user_drag_box
  161. key_pressed
  162. get_pointer:
  163. menu_select
  164. process_key_status
  165.  17,18:
  166. receive
  167. process_key_status
  168.  "AppDockSpt_ClearKeyStatus"
  169.  DOCK_POS=-1 
  170.  DOCK_POS=-2 
  171.  DOCK_POS=-1
  172. recreate_and_open_all
  173. recreate_and_open_all
  174. delete_(scleft_h%):
  175. delete_(scright_h%)
  176. delete_(up_h%):
  177. delete_(down_h%)
  178. delete_(defapp_h%):
  179. delete_(dock_h%):
  180. delete_(defcut_h%)
  181. scleftwindow(DOCK_POS):
  182. scrightwindow(DOCK_POS)
  183. upwindow(DOCK_POS):
  184. downwindow(DOCK_POS)
  185. defappwindow(DOCK_POS)
  186. open_all(DOCK_POS)
  187. delete_(
  188.  h%<>-1 
  189. 1  !BUFFER%=h%:
  190.  "Wimp_DeleteWindow",,BUFFER%
  191.   h%=-1
  192. sysopen
  193.  REOPEN 
  194.  !BUFFER%<>up_h% 
  195.  !BUFFER%<>down_h% 
  196.  !BUFFER%<>dock_h% 
  197.  !BUFFER%<>scleft_h% 
  198.  !BUFFER%<>scright_h% 
  199.  !BUFFER%<>defcut_h% 
  200.  !BUFFER%<>defapp_h% 
  201.  "Wimp_OpenWindow",,BUFFER%
  202.  "Wimp_OpenWindow",,BUFFER%
  203. start(FELD%,OPFL%)
  204.  FF$=P$(FELD%)
  205.  FELD%>=DON 
  206.  FF$="" 
  207.  "OS_Byte",121,0 
  208.  128 
  209.  (FL=0 
  210.  OPFL%=
  211. leaf(FF$),1)="!" 
  212.  "XWimp_StartTask","Run "+FF$+".!Run"+
  213. ("Filer_OpenDir "+FF$)
  214. read_dock
  215. erreport("Invalid dock file ("+
  216. $+", error code "+
  217. ):DON=0:DOF=0:APPNUM=0:
  218. (DOCKFILE$)
  219.  S=0 
  220.  DON=0:DOF=0:
  221.  new format
  222. !  B2=
  223. #S:B3=
  224. #S:B4=
  225. #S:B5=
  226.   V$=
  227.   DON=
  228. get_num(S)
  229.  DON>0 
  230.  N=0 
  231.  DON-1
  232.     P$(N)=
  233. get_line(S)
  234. @    KFLAG(N)=
  235. get_num(S):KN(N)=
  236. get_num(S):CT(N)=
  237. get_num(S)
  238. 7    
  239.  KFLAG(N) 
  240.  KEYC%(N)=CODES%(KN(N)-4)+&10*CT(N)
  241.  old format
  242. #S,DON
  243.  N=0 
  244.  DON-1
  245. #S,P$(N),KFLAG(N),KN(N),CT(N)
  246.  KFLAG(N) 
  247.  KEYC%(N)=CODES%(KN(N)-4)+&10*CT(N)
  248. boot_dock
  249.  DON>0 
  250.  N=0 
  251.  DON-1
  252.    SP$=
  253. leaf(P$(N))
  254. SP$,1)="!" 
  255.  sprite present?
  256. /    
  257.  "XWimp_SpriteOp",256+40,,SP$ 
  258.  ;FLG%
  259.  FLG% 
  260.      
  261.  sprite not present
  262.      
  263.  version%<3 
  264. .      
  265.  "XOS_File",17,P$(N)+".!Boot" 
  266.       
  267.  TY=0 
  268. >       
  269.  boot not present, therefore load sprites manually
  270. @       
  271.  "XOS_CLI","IconSprites "+P$(N)+".!Sprites" 
  272.  ;FLG%
  273.       
  274. >        
  275.  "XWimp_StartTask","Run "+P$(N)+".!Boot" 
  276.  ;FLG%
  277.       
  278.      
  279. :      
  280.  "XWimp_StartTask","Filer_Boot "+P$(N) 
  281.  ;FLG%
  282.      
  283.      
  284.  FLG% 
  285. r      
  286. errc(P$(N)+" not found, OK to continue, Cancel to cancel all following dock entries")=2 
  287.  DON=N:
  288.       P$(N)="":KFLAG(N)=
  289.      
  290.         
  291. read_sc
  292. erreport("Invalid !ShortCuts file ("+
  293. $+", error code "+
  294. ):APPNUM=0:
  295. ("<Dock$Dir>.!ShortCuts")
  296.  S=0 
  297.  APPNUM=0:
  298.  B1<>
  299.  1,"Invalid !ShortCuts file"
  300.   B2=
  301. #S:B3=
  302. #S:B4=
  303. #S:B5=
  304. ' B1=
  305. #S:B2=
  306. #S:B3=
  307. #S:B4=
  308. #S:B5=
  309.  DPOS=B1-48:SCPOS=B2-48
  310.       SHORTTOP=(B3=48):SC=(B4=49)
  311.  APPNUM=
  312. get_num(S)
  313.  APPNUM>0 
  314.  N=0 
  315.  APPNUM-1
  316.    APP$(N)=
  317. get_line(S)
  318.    SCON(N)=
  319. get_num(S)
  320.  M>0 
  321.  M=0 
  322.  SCON(N)-1
  323.      A$=
  324. get_line(S)
  325. !     SCKEYC%(N,M)=
  326. get_num(S)
  327.      
  328. set_sc_o(N,M,A$)
  329. check_mouse
  330. + X%=!BUFFER%:Y%=BUFFER%!4:BT%=BUFFER%!8
  331. ( HANDLE%=BUFFER%!12:ICON%=BUFFER%!16
  332.  HANDLE%=dock_h% 
  333.  FELD%=ICON% 
  334.  2+DOF
  335.  HANDLE%=defcut_h% 
  336.  FELD%=ICON%+SCOF
  337.  BT% 
  338.  HANDLE%=dock_h% 
  339.  FELD%>=DON 
  340.     $appname="(none)"
  341. $     
  342. reset("(non",MENU%,0,0)
  343. set("(non",MENU%,8,22)
  344. set("Inse",MENU%,8,22)
  345. set("Dele",MENU%,8,22)
  346.     $appname="(none)"
  347. *!    
  348. reset("(non",MENU%,8,22)
  349. +!    
  350. reset("Inse",MENU%,8,22)
  351. ,!    
  352. reset("Dele",MENU%,8,22)
  353.  KFLAG(FELD%) 
  354.      
  355. set("(non",MENU%,0,0)
  356.      
  357. clear_all
  358.      !BUFFER%=short_h%
  359. 1A     BUFFER%!4=KN(FELD%):BUFFER%!8=(1<<21):BUFFER%!12=(1<<21)
  360. 2(     
  361.  "Wimp_SetIconState",,BUFFER%
  362.      BUFFER%!4=CT(FELD%)
  363. 4(     
  364.  "Wimp_SetIconState",,BUFFER%
  365. 5        
  366. 6!     
  367. reset("(non",MENU%,0,0)
  368.      
  369. clear_all
  370. 8?     !BUFFER%=short_h%:BUFFER%!8=(1<<21):BUFFER%!12=(1<<21)
  371. 9      BUFFER%!4=0 : 
  372.  'Alone'
  373. :(     
  374.  "Wimp_SetIconState",,BUFFER%
  375. ;        
  376. <)    $appname="'"+
  377. leaf(P$(FELD%))+"'"
  378. =.    $shorttb=
  379. leaf(P$(FELD%))+": Shortcut"
  380. ?.   
  381.  "Wimp_CreateMenu",,MENU%,X%-16,Y%-16
  382.    CMENU%=MENU%
  383.    MENICON%=FELD%
  384.  HANDLE%=defcut_h% 
  385.  EDFLAG 
  386.  (APPNUM>0) 
  387. set_edsc_fields
  388. F"    
  389. reset("Shor",MENU2%,8,22)
  390.  FELD%<SCON(AFN) 
  391. H#     
  392. reset("Dele",MENU2%,8,22)
  393. I#     
  394. reset("Inse",MENU2%,8,22)
  395. J        
  396. K!     
  397. set("Dele",MENU2%,8,22)
  398. L!     
  399. set("Inse",MENU2%,8,22)
  400. M        
  401. O     
  402. set("Shor",MENU2%,8,22)
  403. P     
  404. set("Inse",MENU2%,8,22)
  405. Q     
  406. set("Dele",MENU2%,8,22)
  407. S/   
  408.  "Wimp_CreateMenu",,MENU2%,X%-16,Y%-16
  409.    CMENU%=MENU2%
  410.    MENICON%=FELD%
  411.  HANDLE%=up_h% 
  412.    DOF=0
  413. open_dock(DOCK_POS)
  414.  HANDLE%=down_h% 
  415. \,   
  416.  DOF=0 
  417.  DOF=DON-NOD+1 
  418.  DOF=DON-NOD
  419.  DOF<=1 
  420.  DOF=0
  421. open_dock(DOCK_POS)
  422.  HANDLE%=scright_h% 
  423.     SCOF=0
  424. d>    
  425.  SCOF=0 
  426.  SCOF=SCON(AFN)-NOSC+1 
  427.  SCOF=SCON(AFN)-NOSC
  428.  SCOF<=1 
  429.  SCOF=0
  430. open_sc(DOCK_POS)
  431.  HANDLE%=scleft_h% 
  432. j    SCOF=0:
  433. open_sc(DOCK_POS)
  434.  BT% 
  435.  HANDLE%=edit_h% 
  436. edit_click
  437.  HANDLE%=edsc_h% 
  438.  ICON%=3 
  439. p!   
  440. set_sc(AFN,FELD%,$edsci0)
  441. q-   
  442.  SCON(AFN)<=FELD% 
  443.  SCON(AFN)=FELD%+1
  444.  "Wimp_CreateMenu",,-1
  445.  HANDLE%=dock_h% 
  446. start(FELD%,
  447.  (HANDLE%=down_h% 
  448.  BT%=4) 
  449.  (HANDLE%=up_h% 
  450.  BT%=1) 
  451. x+   DOF+=NOD:
  452.  DOF+NOD>MAX 
  453.  DOF=MAX-NOD
  454. open_dock(DOCK_POS)
  455.  (HANDLE%=down_h% 
  456.  BT%=1) 
  457.  (HANDLE%=up_h% 
  458.  BT%=4) 
  459.    DOF-=NOD
  460.  DOF<0 
  461.  DOF=1 
  462.  DOF=0
  463. open_dock(DOCK_POS)
  464.  HANDLE%=defcut_h% 
  465.  EDFLAG 
  466. set_edsc_fields
  467. 1    
  468.  "Wimp_CreateMenu",,edsc_h%,X%-64,Y%+16
  469. #     
  470. get_sc(AFN,FELD%)<>"" 
  471.        
  472. issue_shortcut(FELD%)
  473.      
  474.         
  475.  (HANDLE%=scright_h% 
  476.  BT%=4) 
  477.  (HANDLE%=scleft_h% 
  478.  BT%=1) 
  479. 7   SCOF+=NOSC:
  480.  SCOF+NOSC>DSCMAX 
  481.  SCOF=DSCMAX-NOSC
  482. open_sc(DOCK_POS)
  483.  (HANDLE%=scright_h% 
  484.  BT%=1) 
  485.  (HANDLE%=scleft_h% 
  486.  BT%=4) 
  487.    SCOF-=NOSC
  488.  SCOF<0 
  489.  SCOF=1 
  490.  SCOF=0
  491. open_sc(DOCK_POS)
  492.  HANDLE%=short_h% 
  493.  ICON%=17 
  494. scan_key
  495.  ICON%=18 
  496. %    KN(MENICON%)=0:CT(MENICON%)=0
  497.     KFLAG(MENICON%)=
  498.      
  499.  "Wimp_CreateMenu",,-1
  500.  BT%=256 
  501.  single Adjust click
  502.    SC=
  503. sc_tick
  504. open_all(DOCK_POS)
  505. set_edsc_fields
  506.  $edsci0=
  507. get_sc(AFN,FELD%)
  508.  SCKEYC%(AFN,FELD%)<>-1 
  509. )  $edsci2="("+
  510. SCKEYC%(AFN,FELD%)+")"
  511.   $edsci2="(none)"
  512. issue_shortcut(FEN%)
  513.  SCKEYC%(AFN,FEN%)<>-1 
  514.  "Wimp_ProcessKey",SCKEYC%(AFN,FEN%)
  515. get_sc(APP%,NUM%)
  516.  SN%,FF%,A$
  517.  SN%=NUM% 
  518.  ANZPS%
  519.  FF%=(NUM% 
  520.  ANZPS%)*SCL%
  521.   A$=
  522. SD$(APP%,SN%),FF%,SCL%)
  523.  P>0 
  524. A$,P-1)
  525. set_sc(APP%,NUM%,A$)
  526. set_sc_o(APP%,NUM%,A$)
  527. open_sc(DOCK_POS)
  528. set_sc_o(APP%,NUM%,A$)
  529.  SN%,FF%,B$
  530.  SN%=NUM% 
  531.  ANZPS%
  532.  FF%=(NUM% 
  533.  ANZPS%)*SCL%
  534. (A$)<SCL% 
  535.  B$=A$+
  536.  B$=A$
  537. SD$(APP%,SN%),FF%,SCL%)=B$
  538. edit_click
  539.  ICON% 
  540. set_edapp(-1):OLH%=-1
  541. close(edit_h%):EDFLAG=
  542.  APPNUM>0 
  543. (   EDAPP+=1:
  544.  EDAPP=APPNUM 
  545.  EDAPP=0
  546. set_edapp(EDAPP)
  547.  APPNUM>0 
  548. +   EDAPP-=1:
  549.  EDAPP=-1 
  550.  EDAPP=APPNUM-1
  551. set_edapp(EDAPP)
  552.  APPNUM>0 
  553.  EDAPP<APPNUM-1 
  554.  N=EDAPP 
  555.  APPNUM-2
  556. ,     APP$(N)=APP$(N+1):SCON(N)=SCON(N+1)
  557.      
  558.  M=0 
  559.  SAN%-1
  560.       SD$(N,M)=SD$(N+1,M)
  561.      
  562.      
  563.  M=0 
  564.  SCON(N)-1
  565. %      SCKEYC%(N,M)=SCKEYC%(N+1,M)
  566.      
  567.     EDAPP=APPNUM-2
  568. "   APPNUM-=1:
  569. set_edapp(EDAPP)
  570.  APPNUM<MAXAPPS 
  571.    APP$(APPNUM)=$editi9
  572.  APP$(APPNUM)<>"" 
  573. &    APPNUM+=1:
  574. set_edapp(APPNUM-1)
  575. erreport("Not more than "+
  576. MAXAPPS+" applications")
  577. scan_key
  578.  "Wimp_WhichIcon",short_h%,BUFFER%,&3F0000,&220000
  579.  !BUFFER%=-1 
  580.  ST=0 
  581.  ST=!BUFFER%
  582.  "Wimp_WhichIcon",short_h%,BUFFER%,&3F0000,&230000
  583.  !BUFFER%=-1 
  584. erreport("You must select a key"):
  585.  KE=!BUFFER%
  586. $ CT(MENICON%)=ST:KN(MENICON%)=KE
  587. ( KEYC%(MENICON%)=CODES%(KE-4)+&10*ST
  588.  KFLAG(MENICON%)=
  589.  "Wimp_CreateMenu",,-1
  590. key_pressed
  591. : KEY=BUFFER%!24:HANDLE%=!BUFFER%:ICON%=BUFFER%!4:PRO=
  592.  HANDLE%=edsc_h% 
  593.  ICON%=1 
  594.        SCKEYC%(AFN,FELD%)=KEY:
  595. 2  $edsci2="("+
  596. KEY+")":
  597. redraw_icon(edsc_h%,2)
  598.  N=0 
  599.  DON-1
  600.  KFLAG(N) 
  601.  KEYC%(N)=KEY 
  602.     PRO=
  603. start(N,
  604.  PRO=
  605.  "Wimp_ProcessKey",KEY
  606. menu_select
  607.  "Wimp_DecodeMenu",,CMENU%,BUFFER%,OPTION%
  608.  $OPTION%="Quit" 
  609. finish:
  610.  $OPTION%="Save all" 
  611. save_dock
  612.  SV_SUCCESS=
  613. save_defs
  614. $OPTION%,6)="Prefs." 
  615. p_sel(
  616. $OPTION%,7))
  617.  CMENU%=MENU% 
  618.  $OPTION%="Delete" 
  619.  MENICON%<DON 
  620.  N=MENICON% 
  621.  DON-1
  622. #L     P$(N)=P$(N+1):KFLAG(N)=KFLAG(N+1):CT(N)=CT(N+1):KEYC%(N)=KEYC%(N+1)
  623.      KN(N)=KN(N+1)
  624. &-   P$(DON)="":DON-=1:
  625. open_dock(DOCK_POS)
  626.  $OPTION%="Insert" 
  627.  DON<MAX 
  628.  N=DON 
  629.  MENICON% 
  630. +L     P$(N+1)=P$(N):KFLAG(N+1)=KFLAG(N):CT(N+1)=CT(N):KEYC%(N+1)=KEYC%(N)
  631.      KN(N+1)=KN(N)
  632.     DON+=1:P$(MENICON%)=""
  633. open_dock(DOCK_POS)
  634.  CMENU%=MENU2% 
  635.  $OPTION%="Delete" 
  636.  MENICON%<SCON(AFN) 
  637.  "Hourglass_On"
  638. 7"    
  639.  N=MENICON% 
  640.  SCON(AFN)-1
  641. 8(     
  642. set_sc(AFN,N,
  643. get_sc(AFN,N+1))
  644. 9(     SCKEYC%(AFN,N)=SCKEYC%(AFN,N+1)
  645.  "Hourglass_Off"
  646. <A    
  647. set_sc(AFN,SCON(AFN),""):SCON(AFN)-=1:
  648. open_sc(DOCK_POS)
  649.  $OPTION%="Insert" 
  650.  SCON(AFN)<DSCMAX 
  651.  "Hourglass_On"
  652. B$    
  653.  N=SCON(AFN) 
  654.  MENICON% 
  655. CH     
  656. set_sc(AFN,N+1,
  657. get_sc(AFN,N)):SCKEYC%(AFN,N+1)=SCKEYC%(AFN,N)
  658.  "Hourglass_Off"
  659. FF    SCON(AFN)+=1:
  660. set_sc(AFN,MENICON%,""):SCKEYC%(AFN,MENICON%)=-1
  661. open_sc(DOCK_POS)
  662.  $OPTION%="Edit ..." 
  663. set_edapp(0)
  664. M(  $editi9="":
  665. redraw_icon(edit_h%,9)
  666. open(edit_h%):EDFLAG=
  667.  (BT% 
  668.  CMENU%=MENU% 
  669.  "Wimp_CreateMenu",,CMENU%,X%+16,Y%-16
  670. try_close
  671. save_dock
  672. erreport(
  673.  SV_SUCCESS=
  674. (DOCKFILE$)
  675.  S=0 
  676. erreport("Unable to save dock"):
  677. erreport(
  678. try_close:
  679. #S,"V200"
  680.  N=0 
  681.  DON-1
  682. #S,P$(N):
  683. KFLAG(N)+" "+
  684. KN(N)+" "+
  685. CT(N)
  686. erreport(
  687. ("SETTYPE "+DOCKFILE$+" TEXT")
  688.  SV_SUCCESS=
  689. save_defs
  690. erreport(
  691. p! S=
  692. ("<Dock$Dir>.!ShortCuts")
  693.  S=0 
  694. erreport("Unable to save shortcuts"):
  695. erreport(
  696. try_close:
  697. #S,"V200"
  698. (48+DPOS)+
  699. (48+SCPOS);
  700. (49+SHORTTOP)+
  701. (48-SC)
  702. APPNUM
  703.  APPNUM>0 
  704.  N=0 
  705.  APPNUM-1
  706. #S,APP$(N)
  707. SCON(N)
  708.  SCON(N)>0 
  709.  M=0 
  710.  SCON(N)-1
  711. }+     
  712. get_sc(N,M):
  713. SCKEYC%(N,M)
  714. erreport(
  715. ( *SETTYPE <Dock$Dir>.!ShortCuts Text
  716. set_edapp(N)
  717.  N>=APPNUM 
  718.  N<0 
  719. B  $editi10="(none)":$defappi0="(no input focus)":AF=
  720. :EDAPP=-1
  721.   $editi10=APP$(N):EDAPP=N
  722.   AFN=EDAPP:AF=
  723.   $editi9=""
  724. !  $defappi0=APP$(N)+" (edit)"
  725. open_sc(DOCK_POS)
  726. redraw_icon(defapp_h%,0)
  727. redraw_icon(edit_h%,9)
  728. redraw_icon(edit_h%,10)
  729. p_sel(A$)
  730. A$,5)="Dock." 
  731. A$,6)="Left" 
  732.  DPOS=0
  733. A$,6)="Right" 
  734.  DPOS=1
  735. d_tick
  736. open_all(DOCK_POS)
  737. A$,10)="ShortCuts." 
  738. A$,11)="On  " 
  739. A$,11)="Off " 
  740. sc_tick
  741. open_all(DOCK_POS)
  742. A$,6)="Front." 
  743. A$,7)="Never" 
  744.    SHORTTOP=
  745. )   DOCK_POS=-2:
  746. recreate_and_open_all
  747. A$,7,1)="A" 
  748.  SHORTTOP=
  749.  "AppDockSpt_ClearKeyStatus"
  750. st_tick
  751. d_tick
  752. d_untick
  753.  DPOS=0 
  754. set("Left",DMENU%,0,0)
  755.  DPOS=1 
  756. set("Righ",DMENU%,0,0)
  757. d_untick
  758. reset("Left",DMENU%,0,0):
  759. reset("Righ",DMENU%,0,0)
  760. sc_tick
  761. sc_untick
  762. set("Off ",SCMENU%,0,0)
  763. set("On  ",SCMENU%,0,0)
  764. sc_untick
  765. reset("On  ",SCMENU%,0,0)
  766. reset("Off ",SCMENU%,0,0)
  767. st_tick
  768. st_untick
  769.  SHORTTOP 
  770. set("Neve",STMENU%,0,0)
  771. set("Alt+",STMENU%,0,0)
  772. st_untick
  773. reset("Neve",STMENU%,0,0)
  774. reset("Alt+",STMENU%,0,0)
  775. receive
  776. # REF%=BUFFER%!8:TASK%=BUFFER%!4
  777.  BUFFER%!16 
  778. finish:
  779.  &400C1
  780. readvduinfo
  781. close_all
  782.   REOPEN=
  783. :MASK%=0
  784.  BUFFER%!20=dock_h% 
  785. !   F$=
  786. get_string(BUFFER%+44)
  787.  "OS_File",17,F$ 
  788.    FELD%=BUFFER%!24 
  789.  2+DOF
  790.  BUFFER%!24<0 
  791.  FELD%>MAX 
  792.  TY<>2 
  793.  TY<>1 
  794.  TY<>3 
  795. $    
  796. leaf(P$(FELD%)),1)="!" 
  797. 7     
  798.  "Wimp_StartTask","Run "+P$(FELD%)+" "+F$+
  799.         
  800. "    
  801.  FELD%>=DON 
  802.  DON=FELD%+1
  803. )    P$(FELD%)=F$:
  804. open_dock(DOCK_POS)
  805.  version%>=3 
  806. #     
  807.  FELD%>=DON 
  808.  DON=FELD%+1
  809. )    P$(FELD%)=F$:
  810. open_dock(DOCK_POS)
  811.         
  812. \     
  813. erreport("I cannot accept image files unless RISC OS 3 (or greater) is running !")
  814.         
  815.  &502
  816. help(REF%)
  817.  &400C7
  818.  EDFLAG 
  819. "   NM$=
  820. get_string(BUFFER%+28)
  821. test_appname(NM$)
  822. test_appname(AA$)
  823.  P=0:FOUND=
  824.  P<APPNUM 
  825.  FOUND
  826.  APP$(P)=AA$ 
  827.  FOUND=
  828.  P+=1
  829.  FOUND 
  830. 1  AA$+=" *":AF=
  831. :AFN=P:
  832. set_fields:
  833. redraw_sc
  834. clear_sc:AF=
  835. , $defappi0=AA$:
  836. redraw_icon(defapp_h%,0)
  837. clear_sc
  838.  N=0 
  839.  NOSC
  840.   $(sct%+16*N)=""
  841. redraw_icon(defcut_h%,N)
  842. redraw_sc
  843.  N=0 
  844.  NOSC
  845. redraw_icon(defcut_h%,N)
  846. redraw_icon(HANDLE%,ICON%)
  847. > !BUFFER%=HANDLE%:BUFFER%!4=ICON%:BUFFER%!8=0:BUFFER%!12=0
  848.  "Wimp_SetIconState",,BUFFER%
  849. set_icon_state(HANDLE%,ICON%,P1%,P2%)
  850.  B !BUFFER%=HANDLE%:BUFFER%!4=ICON%:BUFFER%!8=P1%:BUFFER%!12=P2%
  851.  "Wimp_SetIconState",,BUFFER%
  852. help(REF%)
  853.  HANDLE%=BUFFER%!32
  854.  T$=""
  855.  T$<>"" 
  856. )E  BUFFER%!16=&503:BUFFER%!12=REF%:!BUFFER%=20-4*
  857. (T$)+1)/4)+4
  858.   $(BUFFER%+20)=T$+
  859.  "Wimp_SendMessage",17,BUFFER%,TASK%
  860. open_all(BF%)
  861. open_sc(BF%)
  862. open_dock(BF%)
  863. close_(HA%)
  864.  HA%<>-1 
  865. close(HA%)
  866. open_dock(BF%)
  867.  X0,X1,Y0,Y1,US%
  868.  OSY-=VFAK
  869.  DPOS=0 
  870.   X0=0:X1=92
  871.   X0=OSX-96:X1=OSX-4
  872.  Y1=OSY
  873.  DOF>0 
  874. B2  !BUFFER%=up_h%:BUFFER%!4=X0:BUFFER%!8=OSY-92
  875. CK  BUFFER%!12=X1:BUFFER%!16=OSY:BUFFER%!20=0:BUFFER%!24=0:BUFFER%!28=BF%
  876.  "Wimp_OpenWindow",,BUFFER%
  877.   Y1=Y1-96
  878. close_(up_h%)
  879.  NOD=(Y1-116) 
  880.  96-1
  881. J< !BUFFER%=down_h%:BUFFER%!4=X0:BUFFER%!8=Y1-96*(NOD+1)+4
  882. KW BUFFER%!12=X1:BUFFER%!16=Y1-96*(NOD+1)+96:BUFFER%!20=0:BUFFER%!24=0:BUFFER%!28=BF%
  883.  "Wimp_OpenWindow",,BUFFER%
  884.  Y0=Y1-NOD*96
  885.  dock_h%<>-1 
  886.  !BUFFER%=dock_h%:
  887.  "Wimp_DeleteWindow",,BUFFER%
  888.  DOF+NOD>MAX 
  889.  DOF=MAX-NOD
  890. create_dock(BF%)
  891.  !BUFFER%=dock_h%
  892. R. BUFFER%!4=X0:BUFFER%!8=Y0+4:BUFFER%!12=X1
  893. S; BUFFER%!16=Y1:BUFFER%!20=0:BUFFER%!24=0:BUFFER%!28=BF%
  894.  "Wimp_OpenWindow",,BUFFER%
  895.  OSY+=VFAK
  896. open_sc(BF%)
  897.  OSY-=VFAK
  898.   X0=4
  899.  DPOS=0 
  900.  X0+=96
  901.   X1=OSX-4
  902.  DPOS=1 
  903.  X1-=100
  904.   US%=0:
  905.  SCOF>0 
  906.  US%=SS%
  907.   NOSC=(X1-X0-US%-96) 
  908.  DPOS=0 
  909.  DXF%=(X1-X0-US%-96) 
  910.  SS%+4 
  911.  DXF%=0
  912.  SCOF>0 
  913. cC   !BUFFER%=scleft_h%:BUFFER%!4=X0+SB%-92+DXF%:BUFFER%!8=OSY-92
  914. d;   BUFFER%!12=X0+SB%+DXF%:BUFFER%!16=OSY:BUFFER%!28=BF%
  915. e$   
  916.  "Wimp_OpenWindow",,BUFFER%
  917.    X0+=SS%
  918. close_(scleft_h%)
  919. jE  !BUFFER%=scright_h%:BUFFER%!4=X0+NOSC*SS%+DXF%:BUFFER%!8=OSY-92
  920. kB  BUFFER%!12=X0+NOSC*SS%+96+DXF%:BUFFER%!16=OSY:BUFFER%!28=BF%
  921.  "Wimp_OpenWindow",,BUFFER%
  922.  defcut_h%<>-1 
  923.  !BUFFER%=defcut_h%:
  924.  "Wimp_DeleteWindow",,BUFFER%
  925.  SCOF+NOSC>MAX 
  926.  SCOF=MAX-NOSC
  927. create_defcut(BF%)
  928.   !BUFFER%=defcut_h%
  929. qF  BUFFER%!4=X0+DXF%:BUFFER%!8=OSY-92:BUFFER%!12=X0+NOSC*SS%-4+DXF%
  930. r=  BUFFER%!16=OSY:BUFFER%!20=0:BUFFER%!24=0:BUFFER%!28=BF%
  931.  "Wimp_OpenWindow",,BUFFER%
  932. redraw_icon(defapp_h%,0)
  933.   !BUFFER%=defapp_h%
  934. vB  BUFFER%!4=X0+DXF%:BUFFER%!8=OSY-96-42:BUFFER%!12=X0+404+DXF%
  935. w@  BUFFER%!16=OSY-96:BUFFER%!20=0:BUFFER%!24=0:BUFFER%!28=BF%
  936.  "Wimp_OpenWindow",,BUFFER%
  937.  defcut_h%<>-1 
  938. close_(defcut_h%)
  939. close_(scright_h%):
  940. close_(scleft_h%)
  941. close_(defapp_h%)
  942.  OSY+=VFAK
  943. readvduinfo
  944. E BUFFER%!0=4:BUFFER%!4=5:BUFFER%!8=3:BUFFER%!12=149:BUFFER%!16=11
  945. - BUFFER%!20=12:BUFFER%!24=6:BUFFER%!28=-1
  946.  "OS_ReadVduVariables",BUFFER%,BUFFER%+64
  947. $ HPOT=BUFFER%!64:VPOT=BUFFER%!68
  948.  HFAK=1<<HPOT:VFAK=1<<VPOT
  949. ( NCOL=BUFFER%!72+1:SCRADR=BUFFER%!76
  950. ( HRES=BUFFER%!80+1:VRES=BUFFER%!84+1
  951. * HMAX=HFAK*(HRES-1):VMAX=VFAK*(VRES-1)
  952.  LL%=BUFFER%!88
  953.  POFF%=LL%/HRES
  954.   OSX=HFAK*HRES:OSY=VFAK*VRES
  955. leaf(A$)
  956.  B$=""
  957. A$,".")
  958.  A=0 
  959.   B$=A$
  960.    B=A
  961.    A=
  962. A$,".",B+1)
  963.   B$=
  964. A$,B+1)
  965. codes
  966.  N=0 
  967.   CODES%(N)=&181+N
  968.  N=9 
  969.   CODES%(N)=&1CA+N-9
  970.  CODES%(12)=&180
  971. acknowledge
  972.   !BUFFER%=20:BUFFER%!12=REF%
  973.  BUFFER%!16=4
  974.  "Wimp_SendMessage",17,BUFFER%
  975. get12(AD%)
  976.  A$,N
  977.  A$="":N=0
  978.  N<12 
  979.  AD%?N<>0 
  980.  AD%?N<>13
  981.   A$+=
  982. (AD%?N):N+=1
  983. open(HANDLE%)
  984.  !BUFFER%=HANDLE%
  985.  "Wimp_GetWindowState",,BUFFER%
  986.  "Wimp_OpenWindow",,BUFFER%
  987. close(HANDLE%)
  988.  !BUFFER%=HANDLE%
  989.  "Wimp_CloseWindow",,BUFFER%
  990. close_all
  991. close_(defcut_h%)
  992. close_(dock_h%)
  993. close_(defapp_h%)
  994. close_(scright_h%)
  995. close_(scleft_h%)
  996. close_(up_h%)
  997. close_(down_h%)
  998. clear_all
  999.  N=0 
  1000. B  !BUFFER%=short_h%:BUFFER%!4=N:BUFFER%!8=0:BUFFER%!12=(1<<21)
  1001.  "Wimp_SetIconState",,BUFFER%
  1002. GetFileInfo(F$)
  1003. erreport(
  1004.  FILEOK=
  1005.  F$<>"" 
  1006.  "OS_File",5,F$ 
  1007.  T%,,laddr%,eaddr%,L%,A%
  1008.  (F$="") 
  1009.  ((T%=1) 
  1010.  (A% 
  1011.  (L%>8)) = 0 
  1012.   ThisFile$="<untitled>"
  1013.   FileSize$=""
  1014.   FileType$=""
  1015.   FileDate$=""
  1016.   FILEOK=
  1017.   ThisFile$=F$
  1018.   FileSize$=
  1019.  ((laddr%>>20)
  1020. &FFF)=&FFF 
  1021.    FileType$=""
  1022.  (laddr%>>8 
  1023.  &FFF)=&0F1 
  1024.  FileType$= "Icon    "
  1025.  (laddr%>>8 
  1026.  &FFF)=&FEC 
  1027.  FileType$= "Template"
  1028.  (laddr%>>8 
  1029.  &FFF)=&FF9 
  1030.  FileType$= "Sprite  "
  1031.  FileType$="" 
  1032.  FILEOK=
  1033. 8   FileType$=FileType$+
  1034. "00"+
  1035. ~(laddr%>>8 
  1036.  &FFF),3)
  1037.    time%=BUFFER%
  1038.    time%?4=laddr% 
  1039.    time%?3=eaddr%>>24 
  1040.    time%?2=eaddr%>>16 
  1041.    time%?1=eaddr%>>8  
  1042.    time%?0=eaddr%     
  1043.  "OS_ConvertStandardDateAndTime", time%, FileDate$, 28
  1044.  FileType$="Template" 
  1045.  L%>lbufflen% 
  1046.  FILEOK=
  1047.  A$="WED"
  1048. =FILEOK
  1049. get_state(HANDLE%)
  1050.  !BUFFER%=HANDLE%
  1051.  "Wimp_GetWindowState",,BUFFER%
  1052. coords
  1053. coords
  1054. : X0=BUFFER%!4:Y0=BUFFER%!8:X1=BUFFER%!12:Y1=BUFFER%!16
  1055. 2 SCX=BUFFER%!20:SCY=BUFFER%!24:BEH%=BUFFER%!28
  1056. get_pointer
  1057.  "Wimp_GetPointerInfo",,Q%
  1058. 6 X%=!Q%:Y%=Q%!4:BT%=Q%!8:HANDLE%=Q%!12:ICON%=Q%!16
  1059. finish
  1060.  "Wimp_CloseDown",task_h%,TASK
  1061. get_string(AD%)
  1062.  A$=""
  1063.  ?AD%<>0 
  1064.  ?AD%<>13
  1065.   A$+=
  1066. ?AD%:AD%+=1
  1067. get_line(S)
  1068.  A$,B
  1069.  A$="":B=256
  1070.  B>31
  1071.  B>31 
  1072.  A$+=
  1073. get_num(S)
  1074.  A$,B
  1075.  A$="":B=48
  1076.  ((B>=
  1077. "9") 
  1078.  A$="-"))
  1079.  B>31 
  1080.  A$+=
  1081. create_defcut(BF%)
  1082. #O                          
  1083.  created (11:23:59 25-Oct-1992) by WindowEd 1.08
  1084.  N$,N:N$=
  1085. 13+"           "
  1086. P%=WINDOW%:L%=P%+windowlen%
  1087. PASS=10
  1088. [OPT PASS
  1089. .defcutwindow
  1090. )AEQUD 0:EQUD 100:EQUD 912:EQUD 816:EQUD 0:EQUD 0:EQUD 25369845
  1091. EQUD&80001812+&800*(BF%=-1)
  1092. +"EQUD&40002FF+(&FF-11)*(BF%=-1)
  1093. EQUD&C0103:EQUD 0
  1094. -FEQUD -96:EQUD 4096:EQUD 0:EQUD&19:EQUD&0:EQUD Sprites%:EQUD&200020
  1095. .+EQUS "ShortCut"+
  1096. 13+"   ":::EQUD NOSC:]
  1097.  N=0 
  1098.  NOSC-1
  1099.  [OPT PASS
  1100. s(SS%*N,-92,SS%*N+SB%,0,&2701911B,sct%+16*N,scv%,16)
  1101. 4 $scv%="Ssbox,sbox_s;L40"+
  1102. set_fields
  1103.  "Wimp_CreateWindow",,WINDOW% 
  1104.  defcut_h%
  1105. set_fields
  1106. P%=sct%:L%=sct%+sctlen%
  1107.  N=0 
  1108.  NOSC-1
  1109. =&  $(sct%+16*N)=
  1110. get_sc(AFN,SCOF+N)
  1111.  N=0 
  1112.  NOSC-1
  1113.   $(sct%+16*N)=""
  1114. create_dock(BF%)
  1115. H>                                
  1116.  created by WindowEd 1.04
  1117.  PASS=8 
  1118. P%=WINDOW%:L%=P%+windowlen%
  1119. [OPT PASS
  1120. .dockwindow
  1121. EQUD 1146
  1122. EQUD 4
  1123. EQUD 1238
  1124. EQUD 980
  1125. EQUD 0
  1126. EQUD 0
  1127. EQUD 1788
  1128. T8EQUD %10000000000000000001100000010010+&800*(BF%=-1)
  1129. U$EQUD &040002FF+(&FF-11)*(BF%=-1)
  1130. EQUD &000C0103
  1131. EQUD 0
  1132. EQUD -2304
  1133. EQUD 92
  1134. EQUD 0
  1135. [*EQUD %00000000000000000000000000011001
  1136. \*EQUD %00000000000000000000000000000000
  1137. EQUD Sprites%
  1138. EQUD &00000000
  1139. EQUS ""+
  1140. 13+"           "
  1141. EQUD NOD*2
  1142.  N=0 
  1143.  NOD-1
  1144.  DOF+N<DON 
  1145.   SP$=
  1146. leaf(P$(DOF+N))
  1147.   SP$=""
  1148.  [OPT PASS
  1149.  EQUD 0
  1150.  EQUD -92-N*96
  1151.  EQUD 92
  1152.  EQUD -N*96
  1153. m+ EQUD %00000111000000000000000000000010
  1154.  EQUS "box"+
  1155. 13+"        "
  1156.  EQUD 0
  1157.  EQUD -92-N*96
  1158.  EQUD 92
  1159.  EQUD -N*96
  1160. SP$,1)="!" 
  1161.   [OPT PASS
  1162. v,  EQUD %00000111000000001010000100011010
  1163.   EQUD dockt%+N*24
  1164.   EQUD 1
  1165.   EQUD 12
  1166.  SP$<>"" 
  1167.    [OPT PASS
  1168. ~-   EQUD %00000111000000001010000100011011
  1169.    EQUD dockt%+N*24
  1170.    EQUD dockt%+N*24+12
  1171.    EQUD 12
  1172.    [OPT PASS
  1173. -   EQUD %00000111000000001010000000011001
  1174.    EQUS 
  1175. 13+"           "
  1176.  PASS
  1177.  N=0 
  1178.  NOD-1
  1179.  SP$=
  1180. leaf(P$(DOF+N))
  1181. SP$,1)<>"!" 
  1182.   LL=
  1183. (SP$)
  1184.  LL>5 
  1185. capital(SP$) 
  1186.  2=0 
  1187. *     SP$=
  1188. SP$,LL 
  1189.  2)+" "+
  1190. SP$,LL 
  1191.         
  1192. .     SP$=
  1193. SP$,(LL 
  1194.  2)+1)+" "+
  1195. SP$,LL 
  1196.         
  1197. $ P%=dockt%+N*24:L%=dockt%+dtlen%
  1198.  [OPT 10
  1199.  EQUS SP$+
  1200. ' P%=dockt%+N*24+12:L%=dockt%+dtlen%
  1201.  [OPT 10
  1202.  EQUS "Sboxd;L40"+
  1203.  "Wimp_CreateWindow",,WINDOW% 
  1204.  dock_h%
  1205. capital(
  1206. (S$)+1
  1207.   A-=1
  1208.   B$=
  1209. S$,A,1)
  1210.  A=1 
  1211. (B$)<97
  1212.  L1=A-1:
  1213.  L1<0 
  1214.  L1=0
  1215. (S$)-L1
  1216.  L1<3 
  1217.  L2<3 
  1218.  L1>5 
  1219.  L2>5 
  1220. S$,L1)+" "+
  1221. S$,L2)
  1222. downwindow(BF%)
  1223. >                                
  1224.  created by WindowEd 1.04
  1225.  PASS=8 
  1226. P%=WINDOW%:L%=P%+windowlen%
  1227. [OPT PASS
  1228. .downwindow
  1229. EQUD 876
  1230. EQUD 740
  1231. EQUD 968
  1232. EQUD 832
  1233. EQUD 0
  1234. EQUD 0
  1235. EQUD 1844
  1236. 8EQUD %10001100000000000000100000010010+&800*(BF%=-1)
  1237. $EQUD &010002FF+(&FF-11)*(BF%=-1)
  1238. EQUD &000C0103
  1239. EQUD 0
  1240. EQUD -92
  1241. EQUD 92
  1242. EQUD 0
  1243. *EQUD %00000000000000000000000000011001
  1244. *EQUD %00000000000000000000000000000000
  1245. EQUD Sprites%
  1246. EQUD &00000000
  1247. EQUS ""+
  1248. 13+"           "
  1249. EQUD 1
  1250. EQUD 0
  1251. EQUD -92
  1252. EQUD 92
  1253. EQUD 0
  1254. *EQUD %11110111000000000011000000011010
  1255. EQUS "box_ad"+
  1256. 13+"     "
  1257. P%=IDRPTR%:L%=IDT%+idtlen%
  1258. [OPT PASS
  1259.     ALIGN
  1260.  PASS
  1261. IDRPTR%=P%
  1262.  "Wimp_CreateWindow",,WINDOW% 
  1263.  down_h%
  1264. scleftwindow(BF%)
  1265. O                          
  1266.  created (15:20:39 26-Oct-1992) by WindowEd 1.08
  1267.  N$:N$=
  1268. 13+"           "
  1269.  PASS=8 
  1270. P%=WINDOW%:L%=P%+windowlen%
  1271. [OPT PASS
  1272. .scleftwindow
  1273. CEQUD 876:EQUD 740:EQUD 968:EQUD 832:EQUD 0:EQUD 0:EQUD 25626309
  1274. EQUD&80000812+&800*(BF%=-1)
  1275. "EQUD&10002FF+(&FF-11)*(BF%=-1)
  1276. EQUD&C0103:EQUD 0
  1277. DEQUD -92:EQUD 92:EQUD 0:EQUD&19:EQUD&0:EQUD Sprites%:EQUD&200020
  1278. &EQUS ""+
  1279. 13+"           ":::EQUD 1
  1280. t(0,-92,92,0,&F700301A):EQUS "box_al"+
  1281. 13+"     "
  1282. P%=IDRPTR%:L%=IDT%+idtlen%
  1283. [OPT PASS
  1284.     ALIGN
  1285.  PASS
  1286. IDRPTR%=P%
  1287.  "Wimp_CreateWindow",,WINDOW% 
  1288.  scleft_h%
  1289. defappwindow(BF%)
  1290. O                          
  1291.  created (15:57:22 26-Oct-1992) by WindowEd 1.08
  1292.  N$:N$=
  1293. 13+"           "
  1294.  PASS=8 
  1295. P%=WINDOW%:L%=P%+windowlen%
  1296. [OPT PASS
  1297. .defappwindow
  1298. CEQUD 136:EQUD 824:EQUD 540:EQUD 866:EQUD 0:EQUD 0:EQUD 25447029
  1299. EQUD&80000812+&800*(BF%=-1)
  1300. "EQUD&10002FF+(&FF-11)*(BF%=-1)
  1301. EQUD&C0103:EQUD 0
  1302. EEQUD -42:EQUD 404:EQUD 0:EQUD&19:EQUD&0:EQUD Sprites%:EQUD&200020
  1303. &EQUS "<untitled>"+
  1304. 13+" ":::EQUD 1
  1305. s(0,-42,404,0,&2700013B,defappi0,defappv0,30)
  1306. P%=IDRPTR%:L%=IDT%+idtlen%
  1307. [OPT PASS
  1308.  PASS
  1309. IDRPTR%=P%
  1310.  "Wimp_CreateWindow",,WINDOW% 
  1311.  defapp_h%
  1312. edscwindow
  1313. O                          
  1314.  created (18:22:08 30-Oct-1992) by WindowEd 1.08
  1315.  N$:N$=
  1316. 13+"           "
  1317.  PASS=8 
  1318. P%=WINDOW%:L%=P%+windowlen%
  1319. [OPT PASS
  1320. .edscwindow
  1321. CEQUD 366:EQUD 400:EQUD 790:EQUD 610:EQUD 0:EQUD 0:EQUD 25348437
  1322. 0EQUD&A4000012:EQUD&1000207:EQUD&C0103:EQUD 0
  1323. GEQUD -500:EQUD 600:EQUD 0:EQUD&119:EQUD&0:EQUD Sprites%:EQUD&200020
  1324. (EQUD edsctb:EQUD -1:EQUD 40:::EQUD 6
  1325. s(146,-62,400,-16,&700F13D,edsci0,-1,16)
  1326. s(244,-122,282,-76,&700F13D,edsci1,edscv1,1)
  1327. s(296,-122,400,-76,&27000139,edsci2,-1,8)
  1328. t(318,-192,400,-144,&C701903D):EQUS "OK"+
  1329. 13+"         "
  1330. s(20,-62,142,-16,&7000111,edsci4,-1,13)
  1331. s(22,-122,238,-76,&7000111,edsci5,-1,14)
  1332. P%=IDRPTR%:L%=IDT%+idtlen%
  1333. [OPT PASS
  1334. .edsctb
  1335. EQUS "Edit shortcut"+
  1336. ]:P%+=29:[OPT PASS
  1337. #&.edsci0 EQUS "1234567 1234567"+
  1338. $0.edsci1 EQUS ""+
  1339. 13:.edscv1 EQUS "A~;KN"+
  1340. %/.edsci2 EQUS "(1234)"+
  1341. 13:]:P%+=1:[OPT PASS
  1342. &0.edsci4 EQUS "Action:"+
  1343. 13:]:P%+=5:[OPT PASS
  1344. '$.edsci5 EQUS "Key shortcut:"+
  1345. (    ALIGN
  1346.  PASS
  1347. IDRPTR%=P%
  1348.  "Wimp_CreateWindow",,WINDOW% 
  1349.  edsc_h%
  1350. editwindow
  1351. 1O                          
  1352.  created (22:58:53 01-Mai-1993) by WindowEd 1.08
  1353.  N$:N$=
  1354. 13+"           "
  1355.  PASS=8 
  1356. P%=WINDOW%:L%=P%+windowlen%
  1357. [OPT PASS
  1358. .editwindow
  1359. 7=EQUD 352:EQUD 242:EQUD 992:EQUD 550:EQUD 0:EQUD 0:EQUD -1
  1360. 80EQUD&85030012:EQUD&1000207:EQUD&C0103:EQUD 0
  1361. 9GEQUD -308:EQUD 640:EQUD 0:EQUD&119:EQUD&0:EQUD Sprites%:EQUD&200020
  1362. :)EQUD edittb:EQUD -1:EQUD 15:::EQUD 13
  1363. t(-800,-190,-632,-14,&27000019):EQUS N$    : 
  1364.  dead
  1365. t(-800,-266,-632,-204,&27000019):EQUS N$   : 
  1366.  dead
  1367. t(-800,-342,-632,-278,&37000019):EQUS N$   : 
  1368.  dead
  1369. s(468,-292,620,-240,&1701313D,editi3,editv3,6)
  1370. s(588,-56,620,-24,&C700211B,editi4,editv4,1)
  1371. s(556,-56,588,-24,&C700211B,editi4,editv5,1)
  1372. s(212,-132,376,-80,&1701313D,editi6,editv3,7)
  1373. t(508,-178,620,-130,&7800001):EQUS "<Deleted>"+
  1374. 13+"  "
  1375. s(522,-212,620,-160,&1701313D,editi8,editv3,4)
  1376. s(276,-212,514,-160,&700F13D,editi9,-1,40)
  1377. s(212,-68,548,-16,&1700013D,editi10,editv10,40)
  1378. s(12,-212,268,-160,&7000311,editi11,-1,17)
  1379. s(12,-68,204,-16,&7000311,editi12,-1,13)
  1380. P%=IDRPTR%:L%=IDT%+idtlen%
  1381. [OPT PASS
  1382. .edittb
  1383. EQUS "Edit shortcuts"+
  1384. .editi3 EQUS "Close"+
  1385. .editv3 EQUS "R5,3"+
  1386. .editi4 EQUB 13
  1387. P!.editv4 EQUS "R5;Sup,pup"+
  1388. Q%.editv5 EQUS "R5;Sdown,pdown"+
  1389. .editi6 EQUS "Delete"+
  1390. .editi8 EQUS "Add"+
  1391. T*.editi9 EQUS ""+
  1392. 13:]:P%+=39:[OPT PASS
  1393. U+.editi10 EQUS ""+
  1394. 13:]:P%+=39:[OPT PASS
  1395. .editv10 EQUS "R2"+
  1396. W'.editi11 EQUS "New application"+
  1397. X#.editi12 EQUS "Application"+
  1398. Y    ALIGN
  1399.  PASS
  1400. IDRPTR%=P%
  1401.  "Wimp_CreateWindow",,WINDOW% 
  1402.  edit_h%
  1403. scrightwindow(BF%)
  1404. cO                          
  1405.  created (15:20:44 26-Oct-1992) by WindowEd 1.08
  1406.  N$:N$=
  1407. 13+"           "
  1408.  PASS=8 
  1409. P%=WINDOW%:L%=P%+windowlen%
  1410. [OPT PASS
  1411. .scrightwindow
  1412. iCEQUD 858:EQUD 608:EQUD 950:EQUD 700:EQUD 0:EQUD 0:EQUD 25619189
  1413. EQUD&80000812+&800*(BF%=-1)
  1414. k"EQUD&10002FF+(&FF-11)*(BF%=-1)
  1415. EQUD&C0103:EQUD 0
  1416. mDEQUD -92:EQUD 92:EQUD 0:EQUD&19:EQUD&0:EQUD Sprites%:EQUD&200020
  1417. n&EQUS ""+
  1418. 13+"           ":::EQUD 1
  1419. t(0,-92,92,0,&F700301A):EQUS "box_ar"+
  1420. 13+"     "
  1421. P%=IDRPTR%:L%=IDT%+idtlen%
  1422. [OPT PASS
  1423. s    ALIGN
  1424.  PASS
  1425. IDRPTR%=P%
  1426.  "Wimp_CreateWindow",,WINDOW% 
  1427.  scright_h%
  1428. upwindow(BF%)
  1429. |>                                
  1430.  created by WindowEd 1.04
  1431.  PASS=8 
  1432. P%=WINDOW%:L%=P%+windowlen%
  1433. [OPT PASS
  1434. .upwindow
  1435. EQUD 858
  1436. EQUD 608
  1437. EQUD 950
  1438. EQUD 700
  1439. EQUD 0
  1440. EQUD 0
  1441. EQUD 1840
  1442. 8EQUD %10000000000000000000100000010010+&800*(BF%=-1)
  1443. $EQUD &010002FF+(&FF-11)*(BF%=-1)
  1444. EQUD &000C0103
  1445. EQUD 0
  1446. EQUD -92
  1447. EQUD 92
  1448. EQUD 0
  1449. *EQUD %00000000000000000000000000011001
  1450. *EQUD %00000000000000000000000000000000
  1451. EQUD Sprites%
  1452. EQUD &00000000
  1453. EQUS ""+
  1454. 13+"           "
  1455. EQUD 1
  1456. EQUD 0
  1457. EQUD -92
  1458. EQUD 92
  1459. EQUD 0
  1460. *EQUD %11110111000000000011000000011010
  1461. EQUS "box_au"+
  1462. 13+"     "
  1463. P%=IDRPTR%:L%=IDT%+idtlen%
  1464. [OPT PASS
  1465.     ALIGN
  1466.  PASS
  1467. IDRPTR%=P%
  1468.  "Wimp_CreateWindow",,WINDOW% 
  1469.  up_h%
  1470. shortwindow
  1471. O                          
  1472.  created (15:14:58 28-Sep-1996) by WindowEd 1.08
  1473.  N$:N$=
  1474. 13+"           "
  1475.  PASS=8 
  1476. P%=WINDOW%:L%=P%+windowlen%
  1477. [OPT PASS
  1478. .shortwindow
  1479. EEQUD 1212:EQUD 464:EQUD 1708:EQUD 800:EQUD 0:EQUD 0:EQUD 37133065
  1480. 0EQUD&84370012:EQUD&1000207:EQUD&C0103:EQUD 0
  1481. GEQUD -336:EQUD 496:EQUD 0:EQUD&119:EQUD&0:EQUD Sprites%:EQUD&200020
  1482. *EQUD shorttb:EQUD -1:EQUD 24:::EQUD 19
  1483. s(12,-208,152,-160,&17025113,shorti0,shortv0,6)
  1484. s(160,-208,310,-160,&17025113,shorti1,shortv1,7)
  1485. s(336,-208,484,-160,&17025113,shorti2,shortv2,6)
  1486. s(12,-264,232,-216,&17025113,shorti3,shortv3,12)
  1487. s(12,-76,76,-12,&1703511B,shorti4,shortv4,3)
  1488. s(80,-76,144,-12,&1703511B,shorti5,shortv5,3)
  1489. s(148,-76,212,-12,&1703511B,shorti6,shortv6,3)
  1490. s(216,-76,280,-12,&1703511B,shorti7,shortv7,3)
  1491. s(284,-76,348,-12,&1703511B,shorti8,shortv8,3)
  1492. s(352,-76,416,-12,&1703511B,shorti9,shortv9,3)
  1493. s(420,-76,484,-12,&1703511B,shorti10,shortv10,3)
  1494. s(12,-144,76,-80,&1703511B,shorti11,shortv11,3)
  1495. s(80,-144,144,-80,&1703511B,shorti12,shortv12,3)
  1496. s(148,-144,212,-80,&1703511B,shorti13,shortv13,4)
  1497. s(216,-144,280,-80,&1703511B,shorti14,shortv14,4)
  1498. s(284,-144,348,-80,&1703511B,shorti15,shortv15,4)
  1499. s(352,-144,484,-80,&1703511B,shorti16,shortv16,6)
  1500. s(364,-324,484,-256,&1701313D,shorti17,shortv17,3)
  1501. s(248,-316,352,-264,&1701313D,shorti18,shortv18,4)
  1502. P%=IDRPTR%:L%=IDT%+idtlen%
  1503. [OPT PASS
  1504. .shorttb
  1505. EQUS "Shortcut: !Edit"+
  1506. ]:P%+=8:[OPT PASS
  1507. C.shorti0 EQUS "Alone"+
  1508. 13:.shortv0 EQUS "Sradiooff,radioon"+
  1509. D.shorti1 EQUS "+Shift"+
  1510. 13:.shortv1 EQUS "Sradiooff,radioon"+
  1511. C.shorti2 EQUS "+Ctrl"+
  1512. 13:.shortv2 EQUS "Sradiooff,radioon"+
  1513. I.shorti3 EQUS "+Ctrl-Shift"+
  1514. 13:.shortv3 EQUS "Sradiooff,radioon"+
  1515. 8.shorti4 EQUS "F1"+
  1516. 13:.shortv4 EQUS "Skey,keys"+
  1517. 8.shorti5 EQUS "F2"+
  1518. 13:.shortv5 EQUS "Skey,keys"+
  1519. 8.shorti6 EQUS "F3"+
  1520. 13:.shortv6 EQUS "Skey,keys"+
  1521. 8.shorti7 EQUS "F4"+
  1522. 13:.shortv7 EQUS "Skey,keys"+
  1523. 8.shorti8 EQUS "F5"+
  1524. 13:.shortv8 EQUS "Skey,keys"+
  1525. 8.shorti9 EQUS "F6"+
  1526. 13:.shortv9 EQUS "Skey,keys"+
  1527. :.shorti10 EQUS "F7"+
  1528. 13:.shortv10 EQUS "Skey,keys"+
  1529. :.shorti11 EQUS "F8"+
  1530. 13:.shortv11 EQUS "Skey,keys"+
  1531. :.shorti12 EQUS "F9"+
  1532. 13:.shortv12 EQUS "Skey,keys"+
  1533. ;.shorti13 EQUS "F10"+
  1534. 13:.shortv13 EQUS "Skey,keys"+
  1535. ;.shorti14 EQUS "F11"+
  1536. 13:.shortv14 EQUS "Skey,keys"+
  1537. ;.shorti15 EQUS "F12"+
  1538. 13:.shortv15 EQUS "Skey,keys"+
  1539. ?.shorti16 EQUS "Print"+
  1540. 13:.shortv16 EQUS "Skeyp,keyps"+
  1541. 5.shorti17 EQUS "OK"+
  1542. 13:.shortv17 EQUS "R6,3"+
  1543. 6.shorti18 EQUS "Off"+
  1544. 13:.shortv18 EQUS "R5,3"+
  1545.     ALIGN
  1546.  PASS
  1547. IDRPTR%=P%
  1548.  "Wimp_CreateWindow",,WINDOW% 
  1549.  short_h%
  1550. infowindow
  1551. O                          
  1552.  created (15:35:32 28-Sep-1996) by WindowEd 1.08
  1553.  N$:N$=
  1554. 13+"           "
  1555.  PASS=8 
  1556. P%=WINDOW%:L%=P%+windowlen%
  1557. [OPT PASS
  1558. .infowindow
  1559. DEQUD 658:EQUD 550:EQUD 1222:EQUD 858:EQUD 0:EQUD 0:EQUD 36955673
  1560. 0EQUD&84270012:EQUD&1070207:EQUD&C0E0C:EQUD 0
  1561. JEQUD -308:EQUD 564:EQUD 0:EQUD&13D:EQUD&3000:EQUD Sprites%:EQUD&200020
  1562. )EQUD infotb:EQUD -1:EQUD 19:::EQUD 11
  1563. t(676,-204,852,-156,&B700303D):EQUS N$
  1564. s(156,-60,556,-8,&1700013D,infoi1,infov1,17)
  1565. s(156,-120,556,-68,&1700013D,infoi2,infov2,20)
  1566. s(156,-180,556,-128,&1700013D,infoi3,infov3,16)
  1567. s(156,-240,556,-188,&1700013D,infoi4,infov4,31)
  1568. t(12,-56,156,-16,&17000211):EQUS "Name"+
  1569. 13+"       "
  1570. t(12,-116,156,-76,&17000211):EQUS "Purpose"+
  1571. 13+"    "
  1572. t(12,-176,156,-136,&17000211):EQUS "Author"+
  1573. 13+"     "
  1574. t(12,-236,156,-196,&17000211):EQUS "Status"+
  1575. 13+"     "
  1576. s(156,-300,556,-248,&1700013D,infoi9,infov9,31)
  1577. t(12,-296,156,-256,&17000211):EQUS "Version"+
  1578. 13+"    "
  1579. P%=IDRPTR%:L%=IDT%+idtlen%
  1580. [OPT PASS
  1581. .infotb
  1582. !EQUS "About this program"+
  1583. =.infoi1 EQUS "Application dock"+
  1584. 13:.infov1 EQUS "R2"+
  1585. @.infoi2 EQUS "NeXT style backdrop"+
  1586. 13:.infov2 EQUS "R2"+
  1587. <.infoi3 EQUS "Martin W
  1588. rthner"+
  1589. 13:.infov3 EQUS "R2"+
  1590. H.infoi4 EQUS "FREEWARE"+
  1591. 13:]:P%+=22:[OPT PASS:.infov4 EQUS "R2"+
  1592. R.infoi9 EQUS "2.43 (28-Sep-1996)"+
  1593. 13:]:P%+=12:[OPT PASS:.infov9 EQUS "R2"+
  1594.     ALIGN
  1595.  PASS
  1596. IDRPTR%=P%
  1597.  "Wimp_CreateWindow",,WINDOW% 
  1598.  info_h%
  1599. s(S1%,S2%,S3%,S4%,S5%,S6%,S7%,S8%)
  1600.  [OPT PASS
  1601. ( EQUD S1%:EQUD S2%:EQUD S3%:EQUD S4%
  1602. * EQUD S5%:EQUD S6%:EQUD S7%:EQUD S8%:]
  1603. t(S1%,S2%,S3%,S4%,S5%)
  1604.  [OPT PASS
  1605. 1 EQUD S1%:EQUD S2%:EQUD S3%:EQUD S4%:EQUD S5%
  1606. buffers
  1607.  OPTION%=IDB%
  1608.  OPTION%+200>IDB%+idblen% 
  1609.  1,"Not enough buffer space"
  1610. indirected_text
  1611.  P%=IDT%:L%=IDT%+idtlen%
  1612.  [OPT 10
  1613.  ALIGN
  1614. ) .appname EQUS 
  1615. 13+"                "
  1616.  , .top_shortcut EQUS "Alt+Ctrl+Shift"+
  1617. !; .defappi0 EQUS "(no input focus)"+
  1618. 13:]:P%+=13:[OPT 10
  1619. "* .defappv0 EQUS "Sapptit,apptit_s"+
  1620.  ALIGN
  1621.  IDRPTR%=P%
  1622. toggle(ITEM$,M%,NUM,BIT)
  1623.  DA%=
  1624. finditem(ITEM$,M%)
  1625.  DA%!NUM=DA%!NUM 
  1626.  (2^BIT)
  1627. set(ITEM$,M%,NUM,BIT)
  1628.  DA%=
  1629. finditem(ITEM$,M%)
  1630.  DA%!NUM=DA%!NUM 
  1631.  (2^BIT)
  1632. reset(ITEM$,M%,NUM,BIT)
  1633.  DA%=
  1634. finditem(ITEM$,M%)
  1635. 4( DA%!NUM=DA%!NUM 
  1636.  (2^BIT) 
  1637.  (2^BIT)
  1638. bit(ITEM$,M%,NUM,BIT,FLAG)
  1639.  FLAG=(FLAG<>0)
  1640.  DA%=
  1641. finditem(ITEM$,M%)
  1642. :< DA%!NUM=(DA%!NUM 
  1643.  (-1 
  1644.  (1<<BIT))) 
  1645.  (FLAG 
  1646.  (1<<BIT))
  1647. finditem(ITEM$,M%)
  1648.  FOUND,SUBN,N,S$
  1649. FOUND=0:SUBN=0
  1650.  S$=""
  1651.  M%+=28
  1652.  (M%!8 
  1653.  1<<8) 
  1654.  II$=$(M%!12) 
  1655.  II$=$(M%+12)
  1656. II$,4)=ITEM$ 
  1657.    FOUND=M%
  1658. GA   
  1659.  M%!4<>-1 
  1660.  M%!4-M%<4000 
  1661.  M%!4>M% 
  1662.  SUBN+=1:
  1663. store(M%!4)
  1664.    M%+=24
  1665.  FOUND<>0 
  1666.  (M%!-24 
  1667.  &80)
  1668.  FOUND=0 
  1669.  SUBN>0 
  1670. L      N=1
  1671. N%   FOUND=
  1672. finditem(ITEM$,
  1673. recall)
  1674.    N=N+1
  1675.  N>SUBN 
  1676.  FOUND<>0
  1677. =FOUND
  1678. initialise_menu_tree
  1679. UB TitelColour=7:TitelBackground=2:MenuColour=7:MenuBackground=0
  1680. V  MenuWidth=192:ItemHeight=40
  1681. W2 D2%=MenuColour<<24 
  1682.  MenuBackground<<28 
  1683. X; D2IND%=D2% 
  1684.  &100: 
  1685.  Default flags for indirected item
  1686. Y0 D2S%=D2% 
  1687.  1<<22 :
  1688.  Default for shaded item
  1689.  P%=MENU%
  1690.  MAINPOINTER%(10):MAIN=0
  1691.  S$=""
  1692. initialise_menu
  1693.  MEN$="MENU END"
  1694. initialise_menu
  1695.  SUBN,N
  1696.  MEN$
  1697.  MEN$<>"MENU END" 
  1698.  MEN$="Dock" 
  1699.  DMENU%=P%
  1700.  MEN$="ShortCuts" 
  1701.  SCMENU%=P%
  1702.  MEN$="Front" 
  1703.  STMENU%=P%
  1704.  MEN$="Prefs" 
  1705.  PRMENU%=P%
  1706.  MENWIDTH%
  1707.  S$="" 
  1708.  MAIN+=1:MAINPOINTER%(MAIN)=P%
  1709.  S$<>"" 
  1710. recall)=P%
  1711.  P%>MENU%+menulen%-100 
  1712.  1,"Not enough space for menu-tree"
  1713.   $P%=MEN$
  1714. p-  P%?12=TitelColour:P%?13=TitelBackground
  1715. q+  P%?14=MenuColour:P%?15=MenuBackground
  1716. r&  P%!16=MENWIDTH%:P%!20=ItemHeight
  1717.   P%!24=0:P%+=28
  1718.   SUBN=0
  1719.  ITEM$
  1720.  FLAGS1%,FLAGS2%
  1721.    !P%=FLAGS1%:P%!8=FLAGS2%
  1722. z;   
  1723.  SUB<>-1 
  1724.  SUB<>1 
  1725.  SUB<>2 
  1726.  1,"Sub number error"
  1727.  SUB=2 
  1728. |;    
  1729.  SUBW_HANDLE%:SUB=SUBW_HANDLE%:
  1730.  Window as submenu
  1731.  SUB=-2 
  1732.  SUB=PRMENU%
  1733.  SUB=1 
  1734.  SUBN+=1:
  1735. store(P%+4)
  1736.    P%!4=SUB
  1737.  FLAGS2% 
  1738.  &100 
  1739. :    
  1740.  BUFFER_POINTER%,V_STRING_POINTER%,BUFFER_LENGTH%
  1741. 5    P%!12=BUFFER_POINTER%:P%!16=V_STRING_POINTER%
  1742.     P%!20=BUFFER_LENGTH%
  1743.     $(P%+12)=ITEM$+
  1744.    P%+=24
  1745.  P%>MENU%+menulen%-100 
  1746.  1,"Not enough space for menu-tree"
  1747.  ITEM$
  1748.  ITEM$="ITEM END"
  1749.   !(P%-24)=!(P%-24) 
  1750.  SUBN>0 
  1751.  N=1 
  1752.  SUBN
  1753. initialise_menu
  1754. store(ADR%)
  1755.  S$=S$+
  1756. "0000000"+
  1757. ~ADR%,8)
  1758. recall
  1759.  S$="" 
  1760.  1,"Submenu pointer stack empty"
  1761. ! ADR%=
  1762. ("&"+
  1763. S$,8)):S$=
  1764. S$,9)
  1765.     =ADR%
  1766.   Menu Data:
  1767.  [Menu Title,width
  1768.   [Item$, flags1, flags2, sub (-1=no submenu, 1=submenu, 2=subwindow)
  1769.    {if sub=2: ,handle of subwindow} {if indirect flag (i.e. bit 8) is
  1770.    set in flags2: ,buffer_pointer, validation_string_pointer,
  1771.    buffer_length}]^
  1772.   "ITEM END"
  1773.   [Submenu Data]^
  1774.  "MENU END"]^
  1775.  "AppDock",200
  1776.  "Info",0,D2%,2,info_h%
  1777.  "",0,D2IND%,2,short_h%,appname,-1,11
  1778.  "Delete",0,D2%,-1
  1779.  "Insert",0,D2%,-1
  1780.  "Save all",0,D2%,-1
  1781.  "Prefs",0,D2%,1
  1782.  "Quit",0,D2%,-1
  1783.  "ITEM END"
  1784.  "Prefs",160
  1785.  "Dock",0,D2%,1
  1786.  "ShortCuts",0,D2%,1
  1787.  "Front",0,D2%,1
  1788.  "ITEM END"
  1789.  "Dock",100
  1790.  "Left",0,D2%,-1
  1791.  "Right",0,D2%,-1
  1792.  "ITEM END"
  1793.  "ShortCuts",130
  1794.  "On  ",0,D2%,-1
  1795.  "Off ",0,D2%,-1
  1796.  "ITEM END"
  1797.  "Front",256
  1798.  "Never",0,D2%,-1
  1799.  "Alt+Ctrl+Shift",0,D2IND%,-1,top_shortcut,-1,16
  1800.  "ITEM END"
  1801.  "AppDock",160
  1802.  "Info",0,D2%,2,info_h%
  1803.  "ShortCut",0,D2%,2,edsc_h%
  1804.  "Delete",0,D2%,-1
  1805.  "Insert",0,D2%,-1
  1806.  "Save all",0,D2%,-1
  1807.  "Edit ...",0,D2%,-1
  1808.  "ITEM END"
  1809.  "MENU END"
  1810. errorbox
  1811.  "Wimp_ReportError",
  1812. $+" (internal error code "+
  1813. +")",1,"AppDock2"
  1814. erreport(E$)
  1815.  "Wimp_ReportError",
  1816. 0)+E$,1,"AppDock2"
  1817. CheckOK(R$)
  1818. 0)+R$
  1819.  "Wimp_ReportError",R$,3,"AppDock2" 
  1820.     =E%=1
  1821. confirm
  1822. CheckOK("Are you sure ? Current data is unsaved")
  1823. errc(E$)
  1824.  "Wimp_ReportError",
  1825. 0)+E$,3,"AppDock2" 
  1826.